package main

/**
使用信道需要考虑的一个重点是死锁。
当 Go 协程给一个无缓冲的信道发送数据时，照理说会有其他 Go 协程来接收数据。如果没有的话，程序就会在运行时触发 panic，形成死锁。
同理，当有 Go 协程等着从一个信道接收数据时，我们期望其他的 Go 协程会向该信道写入数据，要不然程序也会触发 panic。
**/

func main() {
	//死锁，没有协程来接收
	ch := make(chan int)
	ch <- 5

	//这样就不会死锁，因为这个信道有1个缓冲，即使没有协程来接收，也不会阻塞
	//ch := make(chan int,1)
}
